查看原文
其他

程序员自制超迷你智能NFC名片:一张平平无奇的门禁卡,如何变身为用不起的样子?

(给程序员的那些事加星标

转自:机器之心
一款火柴盒大小的电子卡片,集公司工牌、小区门禁卡、食堂饭卡于一身,到哪儿都能刷。奇怪,竟然也没人拦。

最近,B 站 UP 主「稚晖君」自制的超迷你智能 NFC 卡片火了。小巧玲珑的卡片,自带电子墨水屏,可以模拟各种 IC 卡,搭配 APP 还能任意设置显示内容……


这一硬核 DIY 教程在发布的 30 个小时内,视频播放量已经突破百万,光点赞量就超过了十万。

最重要的是,他已经将代码开源了。感兴趣的话,你也可以动手试试。


项目地址:https://github.com/peng-zhihui/L-ink_Card


把门禁卡做成一般人用不起的样子

话说,这个 idea 最初是怎么来的呢?

嗯,创意源于生活。比如每个人身上肯定都有很多张 IC 卡,公司的工牌、食堂的饭卡、小区门禁卡等等,这些都是 IC 卡。

当然,卡片太多了也很烦恼。比如经常站在闸机面前,在一堆卡片中翻来翻去才找到需要的那张,这真的不够优雅。所以稚晖君决定,把这些卡片,统统装进一张电子卡片里。

动手之前,首先构思一下需要添加的功能:

1、可以储存多张卡片信息;

2、卡片内容可以擦写;

3、具备 NFC 标签功能;

4、带屏幕;

5、可以通过 APP 设置显示内容;

6、最重要的是,迷你,迷你,迷你。



如此量身定制的「一卡通」,想必使用起来一定会高效且优雅。

接下来,我们来学习一下制作过程。

制作方法

首先是方案的选型,稚晖君选择了「ST25DV」,可以看作是一个 NFC 的物理层芯片。选择这一款的原因是它支持能量采集(Energy-Harvesting)。「ST25DV」可以将其通过线圈获取到的能量传输给主控芯片或其他芯片使用。

当然,这个能量是十分微弱的,功率大概只够点个 LED 灯。在主控芯片的选择上,稚晖君选择的是 STM32 的超低功耗产品线中的 L051。

然后是设计 PCB,因为只有两层,所以这部分(据说)比较轻松:


唯一有点麻烦的是印制电路板,稚晖君一共打样了四次。因为板子焊好之后有时会出现无反应的状态,这个问题和 NFC 读卡器的发射功率有关,最终稚晖君用一颗 CR2032 的纽扣电池解决了这个问题。

电路做好之后,是外壳设计环节。通过调节左边的拨轮可实现不同卡片的切换,显示屏右下方的物理按键可用来刷新屏幕和导通电池。


经过验证,这张卡片的灵敏度还是非常理想的:



说到这里,这张卡片当然不只是用来刷刷刷了。只需要再加上那么一点点的改造,它还能做到更多。

在最开始的构想中,还有通过 APP 设置显示内容的功能。稚晖君拿出了之前做过的一个计算机视觉的移动端推理框架应用,拿来改改就能用。

这个 APP 里面集成了多个功能模块,比如图像输出显示,只要把卡片贴近手机,就可以将任何图像传输到显示屏上。稚晖君先用自己的自拍照做了示例:


搞错了,再来:


出于低功耗方面的考虑,卡片使用的是电子墨水屏,只有黑和白两种颜色,无法显示灰色。虽然「栩栩如生」是做不到了,但作为一名优秀的计算机视觉算法工程师,稚晖君使用 Dithering 抖动算法实现了点阵屏对灰度屏的模拟,让转化后的头像显得更加自然。


另外,这张卡片也可以用来记录待办清单:


或者展示个人专属二维码:



网友:教程看完了,我退下了

不少人点进来默默看完之后表示:「看不懂看不懂」。


据稚晖君介绍说,这张卡片不仅可以用来取代需要随身携带的一堆 IC 卡,还可以用来当作一个随身的副屏或者名片。目前只是第一版方案,之后会在 APP 里扩展更多的 CV 算法功能模块,比如卡通风格迁移(工作忙,项目抽空更新)。

包括外观,后续也会重新设计。在下一版方案中,黑白墨水屏也会换成彩色屏幕,同时添加卡片现场复制和软件卡模拟等功能。


最后送上完整视频:


- EOF -




推荐阅读  点击标题可跳转

1、这 10 行比较字符串相等的代码给我整懵了

2、MATLAB 只是冰山一角!海外资深程序员聊被卡脖子

3、1  行代码的拍一拍,微信最精简的彩蛋


关注「程序员的那些事」加星标,不错过圈内事

圈内事,我在看❤️

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存